import edge_tts
import asyncio

async def text_to_speech(text, filename, proxy_url="http://10.102.10.197:3031", voice="zh-CN-YunxiNeural"):
    """
    将文本转换为语音并保存为MP3文件
    
    参数:
    text -- 要转换的文本内容
    filename -- 保存的文件名（包括路径，如 "output.mp3"）
    proxy_url -- 代理服务器地址（可选）
    voice -- 语音类型（可选）
    """
    try:
        # 创建语音对象
        communicate = edge_tts.Communicate(
            text=text,
            voice=voice,
            proxy=proxy_url
        )
        
        # 保存为MP3文件
        await communicate.save(filename)
        print(f"✅ 语音文件已成功保存为: {filename}")
        return True
    
    except Exception as e:
        print(f"❌ 转换失败: {str(e)}")
        print("可能的原因:")
        print("1. 网络连接问题")
        print("2. 代理服务器不可用")
        print("3. 文本内容过长或格式错误")
        return False

if __name__ == "__main__":
    # 示例用法
    text_input = "这是一个文本转语音的测试，欢迎使用微软Edge TTS服务。"
    output_file = "output.mp3"
    
    # 运行转换
    asyncio.run(text_to_speech(text_input, output_file))
